﻿using System.Collections;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace Onetube.Providers.Interfaces
{
    public interface IYoutubeSubscriptionProvider
    {
        Task<IEnumerable<Onetube.Models.Subscription.SubscriptionResult>> GetMySubscriptionsAsync(string token,string maxResults, CancellationTokenSource cancelTask);

        Task<IEnumerable<Onetube.Models.Subscription.SubscriptionResult>> GetMySubscriptionsAsyncNextPage(string nextPage, string token,string maxResults, CancellationTokenSource cancelTask);

        Task<bool> SubscribeToChannelAsync(string token, string channelToSubscribe, CancellationTokenSource cancelTask);

        Task<bool> IsUserSubscribed(string token, string channelToSubscribe, CancellationTokenSource cancelTask);

        Task<bool> UnsubcribeToChannelAsync(string token, string channelToUnsibcribe, CancellationTokenSource cancelTask);
    }
}